home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1998 May / Software of the Month Club 1998 May.iso / pc / dos / child / poetry / readme.txt < prev    next >
Text File  |  1998-03-03  |  9KB  |  235 lines

  1. **************************************************************************
  2. *+----------------------------------------------------------------------+*
  3. *|                                                                      |*
  4. *|                      Random Poetry Generator                         |*
  5. *|                    Version 1.01 - November 1997                      |*
  6. *|                                                                      |*
  7. *+----------------------------------------------------------------------+*
  8. **************************************************************************
  9.  
  10. +------------------------------------------------------------------------+
  11. |                            What is it?                                 |
  12. +------------------------------------------------------------------------+
  13. It is simply a program that generates random poetry. 
  14.  
  15. +------------------------------------------------------------------------+
  16. |                            Installing                                  |
  17. +------------------------------------------------------------------------+
  18. Installing the program is dead simple. All you do is create a directory on
  19. your computer and then extract the archive into it.
  20.  
  21. +------------------------------------------------------------------------+
  22. |                              Running                                   |
  23. +------------------------------------------------------------------------+
  24. This is pretty simple as well. Go to the command prompt, set the current
  25. directory to the install directory and then type POET. You should find
  26. a randomly generated poem on your computer screen. To generate the next 
  27. one press enter. To quit, press Q.
  28.  
  29. If you run the code without giving it any arguments it will load up the
  30. file poet.txt and generate its poems from that. If you want to have more
  31. control over the poems generated you can change the file it uses and you
  32. can also change various parameters used in generating the poems. Here is
  33. a summary of the command line options of the program:
  34.  
  35. POETRY <filename> options
  36.  
  37. The options can be any of the following
  38.  
  39. -lnn  Changes the number of lines per poem to nn. The default is 6
  40. -wnn  Sets the number of characters per line to nn. The default is 60
  41. -snn  Seeds the random number generator to the given value. Normally it
  42.       is seeded from the clock.
  43.  
  44. If you want to get a help screen at any time you just run the program with
  45. the argument ?.
  46.  
  47. +------------------------------------------------------------------------+
  48. |                          Changing poet data                            |
  49. +------------------------------------------------------------------------+
  50. The data used to generate the poems is contained in the data file that you
  51. give the program. This data file is a normal text file and contains within
  52. it data on the verbs & nouns used. There are 4 sections in this file and 
  53. they are organised like this:
  54.  
  55.                             ~~~~~~~~~~~~
  56.  
  57. &NOUNS
  58.     -->data for nouns goes here
  59. &ENDNOUNS
  60.  
  61. &VERBS
  62.     -->data for verbs goes here
  63. &ENDVERBS
  64.  
  65. &QUALITIES
  66.     -->data for qualities goes here
  67. &ENDQUALITIES
  68.  
  69. &EXCLAMATIONS
  70.     -->data for exclamations goes here
  71. &ENDEXCLAMATIONS
  72.  
  73.                             ~~~~~~~~~~~~
  74.  
  75. Here is an in depth description of what goes in each section:
  76.  
  77.  
  78. NOUNS 
  79. -----
  80. The best way to understand how nouns are done is to look at an
  81. example:
  82.  
  83. The postman(he)/person/man/
  84.  
  85. the first part of the data gives the actual string that will be printed in
  86. the poem. It begins at the start of the line and end with "(". The data
  87. within the brackets gives the type of person the noun is. This can be one
  88. of the following: he, she, it, they, we or i. The next part of the data
  89. is a list of descriptors saying what type of thing this noun  actuallyis.
  90. Each desriptor is a word contained within forward slashes. These 
  91. descriptors can be any old thing you like but they must match up with the
  92. descriptors used in the verb defintions. (See below).
  93.  
  94.  
  95. VERBS 
  96. -----
  97. Here is an excerpt from some verb data
  98.  
  99. /person/thing/
  100. stole
  101. sat upon
  102. coveted
  103. /person/animal/
  104. ate
  105. tamed
  106. ran away from
  107.  
  108. The verbs are split into sections. The start of a section says what sort
  109. of thing the verbs to follow can have as a subject and object. In case you
  110. dont understand the terms "subject" and "object", basically the
  111. subject is the thing doing the verb and the object is the thing having the
  112. verb done to it. For example in the sentence "the man ate the sandwich", 
  113. "the man" is the subject and "the sandwich" the object. The type of things 
  114. given as subject and object should match up with the descriptors given for
  115. the nouns.
  116.  
  117. When the program uses these verbs, it will put the subject at the start,
  118. followed by the verb and then the subject. For example if you had these
  119. two nouns as subject and object repsectively:
  120.  
  121. the postman(he)/person/man/
  122. the car(it)/thing/
  123.  
  124. Then using the verb data above, the program might put togethor the lines
  125.  
  126. The postman |stole |the car
  127.  
  128. or:
  129.  
  130. The postman | coveted | the car
  131.  
  132.  
  133. EXCLAMATIONS
  134. ------------
  135. Exclamation are just phrase like "and lo" or "and so it was that", that
  136. are randomly stuck at the beginning of lines. These are given one per
  137. line between &EXCLAMATIONS & &ENDEXCLAMATIONS
  138.  
  139.  
  140. QUALITIES
  141. ---------
  142. Qualities are specified in the following way:
  143.  
  144. /person/
  145. teeth
  146. arms
  147. sarcasm
  148.  
  149. /thing/
  150. size
  151.  
  152. What these things are is things that can be posessed by nouns. For example
  153. if you are talking about a thing of type /person/ then they can posess for
  154. example teeth, arms or sarcasm. The way the program uses these qualities 
  155. is ever so often instead of using a noun directly it will replace it with 
  156. a thing that is posessed by that noun. For example, as "The postman" 
  157. above has a type /person/ the program might replace postman with 
  158. "his | teeth" or "his | arms" or "his | sarcasm".
  159.  
  160. The rest of the data for a quality is specified in exactly the same way as
  161. a noun.
  162.  
  163. MORE ADVANCED STUFF
  164. -------------------
  165.  
  166. To jazz up verbs a bit, there are various "keys" that you can stick in 
  167. them which when the sentence is expanded will be replaced by various
  168. key phrases. All these "keys" begin with an asterix and have no space
  169. in them. Here is a list of the keys and what they get replaced by:
  170.  
  171. KEY             WHAT IT GETS REPLACED BY       EXAMPLE FOR NOUN
  172.                                                "the postman"
  173. --------------------------------------------------------------------
  174. *sub            Subject of verb                 the postman
  175. *obj            Object of verb                  the postman
  176. *psub           Possesive form of subject       his
  177. *pobj           Posessive form of object        his
  178. *ref            Reflexive form of subject       himself
  179.  
  180. Normally the program assumes that there is a *sub and *obj key at the
  181. beginning of the sentence but by putting in the *sub and *obj keys you
  182. can override this behaviour.
  183.  
  184. So you can better understand this, here is an example. Suppose we have 
  185. the following subject and object:
  186.  
  187. the postman(he)/person/
  188. the kerb(it)/abstract/
  189.  
  190. and the verb is:
  191.  
  192. *sub stubbed *psub toe on *obj and felt sorry for *ref
  193.  
  194. Then the following substitutions will take place:
  195.  
  196. *sub  ->  the postman
  197. *psub ->  his
  198. *obj  ->  the kerb 
  199. *ref  ->  himself
  200.  
  201. So the expanded line would come out as:
  202.  
  203. "the postman stubbed his toe on the kerb and felt sorry for himself"
  204.  
  205. If however we changed the subject to 
  206.  
  207. the woman(she)/person/
  208.  
  209. then the line would be expanded to:
  210.  
  211. "the woman stubbed her toe on the kerb and felt sorry for herself"
  212.  
  213. +------------------------------------------------------------------------+
  214. |                            The Source                                  |
  215. +------------------------------------------------------------------------+
  216. If you have played around with the code for a bit and thought "well this
  217. is all very nice but it could be twice as good if there were a few changes
  218. made here and there", well now you can make the changes yourself. Within 
  219. this archive you should find a file main.c containing the complete source. 
  220. I have tried to make the code completely ANSI C compliant so hopefully you
  221. should be able to compile it on any old C compiler.
  222.  
  223. +------------------------------------------------------------------------+
  224. |                              About                                     |
  225. +------------------------------------------------------------------------+
  226. This program was written by Paul Gaze. If you want to get in contact with
  227. me you can do so over email at the address:
  228.  
  229. pgaze@pgaze.demon.co.uk
  230.  
  231. You can also visit my web page which can be found at:
  232.  
  233. http://www.pgaze.demon.co.uk/index.htm
  234.  
  235.